package in.rob.client; import in.lib.Constants; import in.lib.manager.CacheManager; import in.lib.manager.UserManager; import in.rob.client.MainApplication.ApplicationType; import in.rob.client.dialog.base.DialogBuilder; import java.util.Locale; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnDismissListener; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.ActionBarActivity; /** * Entry point of the application. * * Default preferences and cache removal is done here. Checks for active user session. */ public class SplashActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // sets the default settings PreferenceManager.setDefaultValues(getApplicationContext(), Constants.PREFS_SETTINGS_KEY, Context.MODE_PRIVATE, R.xml.prefs, false); SharedPreferences prefs = getSharedPreferences(getPackageName(), Context.MODE_PRIVATE); if (!prefs.contains(Constants.PREFS_DEFAULT_LOCALE)) { prefs.edit().putString(Constants.PREFS_DEFAULT_LOCALE, Locale.getDefault().getLanguage()); } if (CacheManager.getInstance().fileExists("update.apk")) { CacheManager.getInstance().removeFile("update.apk"); } if (((MainApplication)getApplication()).getApplicationType() == ApplicationType.BETA) { // check the prefs if (!prefs.getBoolean(Constants.PREFS_HAS_BETA, false) && UserManager.isLoggedIn()) { UserManager.logout(this); } } else if (((MainApplication)getApplication()).getApplicationType() == ApplicationType.CD_KEY) { if (prefs.getBoolean(Constants.PREFS_KEY_BLACK_LISTED, false) && UserManager.isLoggedIn()) { UserManager.logout(this); DialogBuilder.create(this) .setTitle(R.string.thank_you) .setMessage(R.string.key_black_listed) .setPositiveButton(R.string.close, null) .setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { try { Intent market = new Intent(Intent.ACTION_VIEW); market.setData(Uri.parse("market://details?id=" + getPackageName())); startActivity(market); } catch (Exception e) { Intent market = new Intent(Intent.ACTION_VIEW); market.setData(Uri.parse("https://robinapp.net/buy.html")); startActivity(market); } finish(); } }) .show(); return; } } startMain(); } /** * Checks if a user is logged in and begins MainActivity, or shows the splash view */ public void startMain() { if (UserManager.isLoggedIn()) { startMainActivity(); } else { showSplash(); } } public void showSplash() { Intent main = new Intent(this, MainChoiceActivity.class); main.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); main.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); main.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); main.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); main.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(main); finish(); } public void startMainActivity() { Intent main = new Intent(this, MainActivity.class); main.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); main.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(main); finish(); } }